Qualcomm SLIMBUS controller
Qualcomm implements 2 type of slimbus controllers:
1. "qcom,slim-msm": This controller is used if applications processor
	driver is controlling slimbus master component. This driver is
	responsible for communicating with slave HW directly using
	messaging interface, and doing data channel management. Driver
	also communicates with satellite component (driver implemented
	by other execution environment, such as ADSP) to get its
	requirements for data channel and bandwidth requirements.
2. "qcom,slim-ngd": This controller is used if applications processor
	driver is controlling slimbus satellite component (also known as
	Non-ported Generic Device, or NGD). This is light-weight slimbus
	controller responsible for communicating with slave HW directly
	over bus messaging interface, and communicating with master component
	(driver residing on other execution environment, such as ADSP)
	for bandwidth and data channel management.

Required properties:

 - reg : Offset and length of the register region(s) for the device
 - reg-names : Register region name(s) referenced in reg above
	 Required register resource entries are:
	 "slimbus_physical": Physical adderss of controller register blocks
	 "slimbus_bam_physical": Physical address of Bus Access Module (BAM)
				 for this controller
 - compatible : should be "qcom,slim-msm" if this is master component driver
 - compatible : should be "qcom,slim-ngd" if this is satellite component driver
 - cell-index : SLIMBUS number used for this controller
 - interrupts : Interrupt numbers used by this controller
 - interrupt-names : Required interrupt resource entries are:
	"slimbus_irq" : Interrupt for SLIMBUS core
	"slimbus_bam_irq" : Interrupt for controller core's BAM

Optional property:
 - reg entry for slew rate : If slew rate control register is provided, this
	 entry should be used.
 - reg-name for slew rate: "slimbus_slew_reg"
 - qcom,min-clk-gear : Minimum clock gear at which this controller can be run
		 (range: 1-10)
		 Default value will be 1 if this entry is not specified
 - qcom,max-clk-gear: Maximum clock gear at which this controller can be run
		 (range: 1-10)
		 Default value will be 10 if this entry is not specified
 - qcom,rxreg-access: This boolean indicates that slimbus RX should use direct
		 register access to receive data. This flag is only needed if
		 BAM pipe is not available to receive data from slimbus
 - qcom,apps-ch-pipes: This value represents BAM pipe-mask used by application
		 processor for data channels. If this property is not defined,
		 default mask of 0x3F000000 is used indicating apps can use 6
		 pipes from 24-29.
 - qcom,ea-pc: This value represents product code (PC) field of enumeration
		 address (EA) for the Qualcomm slimbus controller hardware.
		 This value is needed if data-channels originating from apps
		 are to be used, so that application processor can query
		 logical address of the ported generic device to be used.
		 Other than PC, fields of EA are same across platforms.
 - qcom,slim-mdm: This value provides the identifier of slimbus component on
		 external mdm. This property enables the slimbus driver to
		 register and receive subsytem restart notification from mdm
		 and follow appropriate steps to ensure communication on the bus
		 can be resumed after mdm-restart.
Example:
	slim@fe12f000 {
		cell-index = <1>;
		compatible = "qcom,slim-msm";
		reg = <0xfe12f000 0x35000>,
		      <0xfe104000 0x20000>;
		reg-names = "slimbus_physical", "slimbus_bam_physical";
		interrupts = <0 163 0 0 164 0>;
		interrupt-names = "slimbus_irq", "slimbus_bam_irq";
		qcom,min-clk-gear = <10>;
		qcom,rxreg-access;
		qcom,apps-ch-pipes = <0x60000000>;
		qcom,ea-pc = <0x30>;
	};
